]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
layout: Protect against broken monitor size reports
authorAdel Gadllah <adel.gadllah@gmail.com>
Mon, 17 Feb 2014 12:34:42 +0000 (13:34 +0100)
committerAdel Gadllah <adel.gadllah@gmail.com>
Mon, 17 Feb 2014 12:38:55 +0000 (13:38 +0100)
VNC / XRDP reports nonsensial (i.e 0) monitor dimensions causing us to
end up with a dpi of "Infinity" and thus scale even though we shouldn't.

https://bugzilla.redhat.com/show_bug.cgi?id=1065788

js/ui/layout.js

index 4a4c94f1dd94d3b38b2cebc604537dfbf7e16c63..3f661479e1b16500fb52ac427a04bf13a4a5be5e 100644 (file)
@@ -491,6 +491,12 @@ const LayoutManager = new Lang.Class({
 
     _updateScaling: function() {
         let primary = this.monitors[this.primaryIndex];
+        let width_mm = global.gdk_screen.get_monitor_width_mm(this.primaryIndex);
+        let height_mm = global.gdk_screen.get_monitor_height_mm(this.primaryIndex);
+        if (width_mm == 0 || height_mm == 0) {
+            St.ThemeContext.get_for_stage(global.stage).scale_factor = 1;
+            return;
+        }
         let dpi_x = primary.width / (global.gdk_screen.get_monitor_width_mm(this.primaryIndex) / 25.4);
         let dpi_y = primary.height / (global.gdk_screen.get_monitor_height_mm(this.primaryIndex) / 25.4);
         if (dpi_x > HIGH_DPI_LIMIT && dpi_y > HIGH_DPI_LIMIT)